<html>
<head><meta charset="utf-8"><title>pending-nll-simplifications · t-compiler/wg-nll · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/index.html">t-compiler/wg-nll</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/pending-nll-simplifications.html">pending-nll-simplifications</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="126645015"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/pending-nll-simplifications/near/126645015" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/pending-nll-simplifications.html#126645015">(May 16 2018 at 13:28)</a>:</h4>
<p>btw <span class="user-mention" data-user-id="*">@everyone</span> I'm about to open a PR that tweaks how the nll-facts are laid out, in an effort to fix #24. One of the things it does is to remove the <code>universal_regions</code> facts and instead just add more <code>region_live_at</code> facts.</p>
<p>In particular, each universal region (e.g., a named lifetime parameter) is always live over the entire CFG. Before, I didn't add those facts explicitly, but instead had a <code>universal_region(R)</code> fact that then had to be accounted for in the rules separately. This was a pain in the neck and kind of a micro-optimization that — I think — made no difference. In the optimized rules, in fact, I <a href="https://github.com/rust-lang-nursery/borrow-check/blob/4945c130cb1f3af7c072dc9856b6fe21b3a9f1f7/src/output/timely_opt.rs#L29-L41" target="_blank" title="https://github.com/rust-lang-nursery/borrow-check/blob/4945c130cb1f3af7c072dc9856b6fe21b3a9f1f7/src/output/timely_opt.rs#L29-L41">manually expanded the <code>universal_region</code> facts into <code>region_live_at</code> facts</a> to simplify my life. So I've just moved that into the compiler.</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>